Skip to main content

HydroTrek_-_SWMM_Summary

Background

The Storm Water Management Model (SWMM) computation engine provided by EPA is a widely used component throughout the world for simulating sewer and storm water systems. The engine also comes with a pc-based graphical user interface that provides an extensive toolbox for creating, modifying and running a SWMM model. GQC provided some necessary enhancements to the SWMM 5 API to allow complete model simulations to run on Microsoft Azure's cloud. GQC also added the ability to run SWMM using parallel processing, which significantly improves run times in a virtual environment.

Functional Summary

HydroTrek-SWMM runs a SWMM5 planning model using data directly from local rain gauges. Historical runs can be made to perform in depth analysis of collection systems using both model and sensor data side by side. Real-time or “live” mode allows the model to be continually updated and refreshed with the latest rainfall so that the most up-to-date comparison between model and sensor data is available. Additionally, rainfall predictions are used to forecast the model into the future and allow for operational and strategic decision making. The software is designed to run on cloud and its engine can run fast even on large networks or for longer run times. Model results, as well as real-time sensor data throughout the network can be viewed from any device using any web browser. All data is securely stored in the cloud, and password protected.

Available documents:

Cloud based SWMM Architecture where subscriptions are located Link

Cloud based SWMM Architure Link

Bing map application data sources IDEF0 Link

SWMM Sequence Diagram for Live Dashboard Link

Cloud-Based SWMM Link

SWMM Live Dashboard Play Sequence Diagram Link

LMR Link

Cloud-based SWMM5 Data Relationships Link

SWMM5 Overview Link

SWMM5 WorkerRole Flowchart Link

Stormwater Calculator INP Analysis Link

SWMM5 Play Link

Azure SWMM5 Performance Tuning Link

IDEF0 Radar Immage Animation Link

SWMM5AzureWorker WorkerRole.cs Runs() Link

Current Design for SWMM5 Initlaization of a live chart and adding a sensor data point Link

Radar Image Animation Flowchart Link

LMSD Project Workflow Link

SWMM Design IDEF0 Link

Palo Alto Stormwater Calculator IDEFO Link

Cloud based SWMM Architure with code locations Link

Radar Image Storage Flowchart Link

Software Components

  1. Custom build of EPA's SWMM5 engine to use parallel processing infrastructure provided by Microsoft Azure
  2. Microsoft Azure's worker role to run custom build of EPA's SWMM5 engine
  3. Microsoft Azure's web role to host the dashboard to see run results
  4. Microsoft Azure's worker role to download latest rainfall and radar images from NOAA
  5. Azure Storage Explorer by Neudesic
  6. Modern HTM5 browser

Infrastructure Components

  1. Microsoft Azure Table Storage
  2. Microsoft Azure Blob Storage
  3. Microsoft Azure Cloud Services

Code Repositories

Main folder in SVN -  https://subversion.assembla.com/svn/gqcproject1/trunk/Swmm5

Azure Web-role - Swmm5\SWMM5_Azure\SWMM5_Azure.sln

Azure Worker - Swmm5\SWMM5AzureWorker\SWMM5AzureWorker.sln

SWMM5 C++ Wrapper - Swmm5_01\SWMM5_01.sln

Rainfall Storage - \Swmm5\RainfallStorage\RainfallStorage.sln

Visual Studio Projects

  1. SWMM_Engine_64 – Customized EPA SWMM5 project built for 64 bit machines
  2. swmm5_Parallel_64 – Supplemental project for SWMM_Engine_64 project which provides the multi-threading environment to run certain processes of SWMM_Engine_64 project
  3. SWMM_Bridge_64 – Wrapper to SWMM_Engine_64 project. This provides managed C++ access to API methods of SWMM_Engine_64 project
  4. SWMM5KendoMVCWeb – MVC 4 web dashboard project to project SWMM5 run results on a Bing map
  5. SWMM5_Worker – Class library which allows worker role project to run SWMM5 engine on the Microsoft Azure cloud
  6. RainfallCaptureWorker – Class library which allows worker role project to get observed and forecast rainfall from NOAA along with most latest Doppler imagery
  7. SWMM5_GQC_Library – Project library which contains definitions and declaration of various entities that are common two both SWMM5KendoMVCWeb, SWMM5_Worker and RainfallCaptureWorker projects
  8. SWMM5AzureWorker – Microsoft Azure worker role project which references SWMM5_Worker project
  9. SWMM5_Azure – Microsoft Azure web role project which references SWMM5KendoMVCWeb project
  10. RainfallStorage – Microsoft Azure worker role project which references RainfallCaptureWorker project

Deployment Summary

Client Key

Config

Web Role

Worker Role

Storage

Website

Web and worker role subscription owner Account

Storage subscription owner account

Package blob

lmc

Release

lmcweb

lmcworker

msdgc

arturoiitbiz.onmicrosoft.com

sudhirgqc535.onmicrosoft.com

lmsd

LMSDSpecial

lmsd

n/a

lmsd

arturoiitbiz.onmicrosoft.com

sudhirgqc535.onmicrosoft.com

rivershore

Release 

rivershore

rivershoreworker

gqcstorage1

http://rivershore.cloudapp.net

arturoiitbiz.onmicrosoft.com

sudhirgqc535.onmicrosoft.com

Project

Worker Role

Storage

Worker Role subscription account

Storage subscription account      

Package blob

rainfallstorage

rainbiz

Station table and radar-images blob in gqcstorage1

arturoiitbiz.onmicrosoft.com

sudhirgqc535.onmicrosoft.com

iitbiz subscriptions' gqcdeploy

1. Rainfall.ServiceConfiguration.Cloud.cscfg

2. RainfallStorage.cspkg

gqclog

all worker roles using Microsoft.Diagnostic Trace methods

gqclog container

depends on worker role

sudhirgqc535.onmicrosoft.com

Azure Tables and Blobs

Tables 

Table Name

Description

Properties

Inputs

Stores the parameters for the run and the name of the input files

PartitionKey

rivershore

RowKey

scenario#

RunFlag

Boolean

StartTime

DateTime

EndTime

DateTime

TimeZone

Eastern Standard Time

ReportingTimeStep

15 (make sure to match the inp file)

InputFileName

name of the inp file uploaded to inputs table.

Sensors

Stores the sensor basic data

PartitionKey

Stage

RowKey

ccno#

location

lat,long

overflowlevel

integer

units

ft

LinkOutput

CSV values stored in Time series for the Link charts on the website

 - 

 - 

SubCatchOutput

CSV values stored in Time series for the Sub Catchment charts on the website

 - 

 - 

NodeOutput

CSV values stored in Time series for the Node charts on the website

 - 

 - 

SystemOutput

CSV values stored in Time series for the System chart on the website

 - 

 - 

Sensor Data

Stores all the details about the sensors: depth, head, volume, flow, velocity etc..

 - 

 - 

Runs 

Stores the details and status of the run

Blobs

Blob Name

Description

rivershore-swmm-ouput

Contains all the SWMM results for each timestep

swmm-input

Upload the inp file for the run.